package homework.mission4;

import java.util.Arrays;

public class IncreaseArray {
    public static void main(String[] args) {
        NewArray arr = new NewArray();
        for (int i = 0; i < 10; i++) {
            arr.add(i);
        }
    }
}

/**
 * 创建一个类，模拟数组扩容
 */
class NewArray {
    /**
     * 声明数组和当前数组中存储元素的数量
     */
    public int[] data = new int[10];
    public int count;

    /**
     *
     * @param len 当前数组的长度
     * @return 返回扩容后的数组
     */
    public int[] increaseArr(int len) {
        // 创建一个长度为当前数组长度1.5倍的数组(数组的长度是整数，所以要取整)
        int[] new_data = new int[Math.round(len * 1.5f)];

        // 逐一将旧数组中的元素拷贝到新数组中并返回
        for (int i = 0; i < len; i++) {
            new_data[i] = data[i];
        }

        return new_data;
    }

    /**
     * 数组添加元素
     * @param num
     */
    public void add(int num) {
        if(count * 1.0 / data.length >= 0.8) {
            data = increaseArr(data.length);
        }
        data[count ++] = num;
        System.out.print(Arrays.toString(data));
        System.out.print(" 容器容量 " + (count * 1.0 / data.length * 100) + "%");
        System.out.println();
    }
}
